#ifndef KernelModule_h
#define KernelModule_h

/**
 * @defgroup Kernel Framework for physical simulation analysis
 *
 * The physical models, such as structural/fluid mechanical models, are usually described as
 * mathematical problems, which are composed of the governing equations with several
 * well-posed inital/boundary conditions.
 *
 * In the past long time, several numerical methods, such as FDM, FEM, FVM and SPH, has been
 * developed. Beside the differences between these methodlogies, a global procedure may be
 * summarized as followings,
 *
 * - Space Discretization
 * Non-overlapping geometry entities (nodes/elements/cells/particles) are generated to fill up
 * the whole continuous domain. A certain method will be taken to represent the mathematical
 * problem within this discretized space.
 *
 * - Assembly
 * Usually, the semi-discretized equations are formed by summing contributions from the entities.
 * These contributions include the left-hand matrix term and the right-hand terms in the resultant
 * equations. At this stage, a semi-discretized equations can be built to approximately describe
 * the original physical model.
 *
 * - Time Integral
 * For many transient analysis, these semi-discretized equations will usually make a system of ODEs
 * (Ordinary Difference Equations). Time Integration Scheme should be resorted to propagating the
 * fields along the time line. In this way, the fully-discretized equations can be built.
 *
 * - Solving
 * A special strategy are dedicated to take the control of the solving process. It calls the
 * algebra tools to solve algebra equations, update the fields, check whether the solution meet
 * the criteria, output the fields, and so on.
 *
 * Based on the above points, it seems that several kernel components should be introduced to
 * represent the analysis skeleton.
 *
 * @author nene
 * @date October, 2024.
 *
 */


#include "SGFem/Task/Common/TaskExport.h"
#define KERNEL_EXPORT Task_DECLSPEC

#include "Utility/Algebra/Matrix.h"

// standard C/C++ headers
#include <memory>

#endif  // KernelModule_h